<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
    <title>Donxon SDK Docs</title>
    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
	<div id="product_logo"></div>
	<div id="product_name"><big><b></b></big></div>
	<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<br/>
<h1>Donxon SDK</h1>

<ul>
  <li><a href="../index.html">Index</a></li>
</ul>



<h2>Examples</h2>
<ul class="nowrap">
  <li><a href="../examples/bartime.game.lua.html">bartime.game.lua</a></li>
  <li><a href="../examples/bartime.ui.lua.html">bartime.ui.lua</a></li>
  <li><a href="../examples/deltatiming.game.lua.html">deltatiming.game.lua</a></li>
  <li><a href="../examples/deltatiming.ui.lua.html">deltatiming.ui.lua</a></li>
  <li><strong>hook.game.lua</strong></li>
  <li><a href="../examples/netmsg.simple.common.lua.html">netmsg.simple.common.lua</a></li>
  <li><a href="../examples/netmsg.simple.game.lua.html">netmsg.simple.game.lua</a></li>
  <li><a href="../examples/netmsg.simple.ui.lua.html">netmsg.simple.ui.lua</a></li>
  <li><a href="../examples/progressbar.ui.lua.html">progressbar.ui.lua</a></li>
  <li><a href="../examples/rectangle.ui.lua.html">rectangle.ui.lua</a></li>
  <li><a href="../examples/screenfade.game.lua.html">screenfade.game.lua</a></li>
  <li><a href="../examples/screenfade.ui.lua.html">screenfade.ui.lua</a></li>
  <li><a href="../examples/stringbuffer.lua.html">stringbuffer.lua</a></li>
  <li><a href="../examples/textmenu.simple.game.lua.html">textmenu.simple.game.lua</a></li>
  <li><a href="../examples/utf8.lua.html">utf8.lua</a></li>
  <li><a href="../examples/vector.2d.lua.html">vector.2d.lua</a></li>
  <li><a href="../examples/vector.3d.lua.html">vector.3d.lua</a></li>
</ul>
<h2>Globals</h2>
<ul class="nowrap">
  <li><a href="../globals/Properties.html">Properties</a></li>
  <li><a href="../globals/Functions.html">Functions</a></li>
  <li><a href="../globals/Classes.html">Classes</a></li>
</ul>
<h2>Modules</h2>
<ul class="nowrap">
  <li><a href="../modules/System.html">System</a></li>
  <li><a href="../modules/Common.html">Common</a></li>
  <li><a href="../modules/Game.html">Game</a></li>
  <li><a href="../modules/UI.html">UI</a></li>
</ul>
<h2>Classes</h2>
<ul class="nowrap">
  <li><a href="../classes/Debug.html">Debug</a></li>
  <li><a href="../classes/StringBuffer.html">StringBuffer</a></li>
  <li><a href="../classes/Hook.html">Hook</a></li>
  <li><a href="../classes/System.UTF8.html">System.UTF8</a></li>
  <li><a href="../classes/Common.Color.html">Common.Color</a></li>
  <li><a href="../classes/Common.Vector2D.html">Common.Vector2D</a></li>
  <li><a href="../classes/Common.Vector.html">Common.Vector</a></li>
  <li><a href="../classes/Common.NetMessage.html">Common.NetMessage</a></li>
  <li><a href="../classes/Common.TextMenu.html">Common.TextMenu</a></li>
  <li><a href="../classes/Common.ScreenFade.html">Common.ScreenFade</a></li>
  <li><a href="../classes/Common.HUDText.html">Common.HUDText</a></li>
  <li><a href="../classes/Game.NetMessage.html">Game.NetMessage</a></li>
  <li><a href="../classes/Game.TextMenu.html">Game.TextMenu</a></li>
  <li><a href="../classes/Game.ScreenFade.html">Game.ScreenFade</a></li>
  <li><a href="../classes/Game.BarTime.html">Game.BarTime</a></li>
  <li><a href="../classes/UI.Rectangle.html">UI.Rectangle</a></li>
  <li><a href="../classes/UI.ProgressBar.html">UI.ProgressBar</a></li>
  <li><a href="../classes/UI.TextMenu.html">UI.TextMenu</a></li>
  <li><a href="../classes/UI.ScreenFade.html">UI.ScreenFade</a></li>
  <li><a href="../classes/UI.BarTime.html">UI.BarTime</a></li>
</ul>
<h2>Topics</h2>
<ul class="">
  <li><a href="../topics/changelog.md.html">changelog</a></li>
  <li><a href="../topics/credit.md.html">credit</a></li>
  <li><a href="../topics/license.html">license</a></li>
</ul>

</div>

<div id="content">

    <h2>hook.game.lua</h2>
<pre>
<span class="comment">-- Assigns 2 hook functions as usually do.
</span><span class="keyword">function</span> Game.Rule:OnTakeDamage ( victim, attacker, damage, weapontype, hitbox )
  <span class="global">print</span>( <span class="string">"[a] "</span>, victim.index );
<span class="keyword">end</span>
<span class="keyword">function</span> Game.Rule:OnTakeDamage ( victim, attacker, damage, weapontype, hitbox )
  <span class="global">print</span>( <span class="string">"[b] "</span>, <span class="global">type</span>( attacker ) );
  <span class="keyword">if</span> attacker ~= <span class="keyword">nil</span> <span class="keyword">then</span>
    <span class="global">print</span>( <span class="string">"[b] "</span>, attacker.index );
  <span class="keyword">end</span>
<span class="keyword">end</span>


<span class="comment">-- Removes all registered hooks.
</span>Hook:RemoveAll( Game.Rule.OnTakeDamage );


<span class="comment">-- Assigns 2 another hooks with reference.
</span><span class="keyword">local</span> <span class="keyword">function</span> c ( self, victim, attacker, damage, weapontype, hitbox )
  <span class="global">print</span>( <span class="string">"[c]old "</span>, damage );
  damage = damage // <span class="number">2</span>;
  <span class="global">print</span>( <span class="string">"[c]new "</span>, damage );
  <span class="keyword">return</span> damage;
<span class="keyword">end</span>
<span class="keyword">local</span> <span class="keyword">function</span> d ( self, victim, attacker, damage, weapontype, hitbox )
  <span class="global">print</span>( <span class="string">"[d] "</span>, hitbox );
<span class="keyword">end</span>
Game.Rule.OnTakeDamage = c;
Game.Rule.OnTakeDamage = d;


<span class="comment">-- Function <code>d</code> is not executed because the previous link (<code>c</code>) was returns a value.
</span><span class="comment">-- You can also returns <code>Hook.RETURN.HANDLED</code> to halts remaining executions without returning any values (nothing),
</span><span class="comment">-- Or returns <code>Hook.RETURN.CONTINUE</code> to continues remaining executions without returning any values (nothing).
</span>

<span class="comment">-- Removes an individual hook.
</span>Hook:Remove( Game.Rule.OnTakeDamage, d );</pre>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-06-15 21:15:36 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
